This invention relates generally to the field of digital data transmission lines and buses. More particularly, the present invention relates to an efficient method for measuring error-rate or noise margins on a digital data bus, such as a low voltage differential data bus, and for establishing maximum data transfer rates in response to the measurement.
Buses are used to interconnect components and elements of digital computing systems. A bus is a collection of wires in a cable or conductive traces on a printed circuit board, or other signaling medium or paths, such as an optical fiber channel or path, which transmit data, status and control signals. A bus may also typically supply operating power and ground return paths via electrical conductors. A bus between physically separate computing systems is frequently referred to as a network.
Standard buses and bus structures have become widespread in digital computing. One family of bus structures is known as Small Computer System Interface, or xe2x80x9cSCSIxe2x80x9d. The SCSI bus structure has become standardized, as specified by document S3.131-1986 published by the American National Standards Institute (ANSI) in June 1986. The SCSI bus enabled e.g. eight computer central processing units (CPUs) and computer peripherals to be interconnected, and provided a defined physical interconnect and a signaling construct enabling exchange of data between interconnecting computing/storage subsystems, etc.
One recent improvement to the SCSI bus has been a low voltage differential bus structure (LVD SCSI). This LVD SCSI bus structure includes a pair of signal paths or wires for each logical signal, and each path has a signaling range of only approximately 400 millivolts, e.g. 1.1volts to 1.5volts. Two differential signal lines can hold two binary states. The voltages (1.5volts, 1.1volts) on the two lines represent a first binary state, while the reverse voltages (1.1 volts, 1.5volts) on the same two lines represent a second binary state opposite of the first state. While the voltages in this example are not absolute, it is a characteristic of LVD SCSI buses that the voltage difference between the two lines (e.g. 0.4 volts) is much smaller than the average voltage on the two lines (e.g. 1.3 volts). This very narrow signaling range presents unique design requirements and challenges to interface circuits supporting connections to this particular bus structure. These requirements and challenges become even more acute when bus speeds are increased.
Difficult design tradeoffs have been faced in trying to double speeds on LVD SCSI buses from e.g. 40 megatransfers per second to 80 megatransfers per second. These tradeoffs pit desired higher bus speed against long cable runs and low power operation. Since devices connected to the LVD SCSI bus have no prior knowledge or information concerning the physical length of the particular bus, the bus length must be limited to a physical length over which reliable operation can be guaranteed with all system components being simultaneously rated at worst case tolerances.
It is known within the computer modulator/demodulator (xe2x80x9cmodemxe2x80x9d) art to provide a functional fallback mode when a modem encounters data errors while operating at a highest possible transmission speed. In the case of error detection the modem switches to a lower transmission speed. Adjustment of transmission speed involves interaction with higher levels of operating system software and represents a single adjustable variable within the system.
In multi-device (xe2x80x9cmulti-dropxe2x80x9d) computer data buses some form of bias must be applied to the bus in order to cause a known state to exist during bus idle intervals when none of the devices (xe2x80x9cdropsxe2x80x9d) is active. Bus terminators connected to SCSI buses bias all undriven bus lines or pins to a negation state. This bus bias condition leads to a requirement that active drivers source different drive levels to establish logical assertion and negation levels. When driving a negation level (logical false), the terminator bias aids the driver. When driving an assertion level (logical true), the terminator bias opposes the driver and a stronger signal must be driven onto the bus.
In order to overcome the terminator bias, a hybrid approach employing two sets of current mode drivers is disclosed in commonly assigned, co-pending U.S. patent application Ser. No. 08/969,375 by co-inventor Uber, filed on Nov. 13, 1997, for xe2x80x9cAsymmetric Current Mode Driver for Differential Transmission Linesxe2x80x9d, the disclosure thereof being incorporated herein by reference. In that prior approach one set of current mode drivers was used to drive an assertion polarity current which is approximately equal to the negation polarity current sourced by the terminators on the bus. A second set comprised drivers of switchable polarity, which were used to drive symmetrical signals onto the bus.
There are multiple causes of signal quality degradation on the bus. Such causes include tolerance ranges on the negation current from the terminator; tolerance ranges on the bias cancellation current sourced by the SCSI device; imbalance in the symmetry of the symmetrical signal driver; amplitude of the signal from the symmetrical signal driver; attenuation of signals on the cable or printed circuit board bus; line impedance changes along the bus; capacitance mismatch of loads along the bus; threshold variations on the detector located in the SCSI device which receives the data transmitted along the bus; inter-symbol interference (which is the dependence of waveform on the data pattern being transmitted); and/or crosstalk among signals driven on the bus.
Considerable speed performance improvement and potential bus length is sacrificed because current SCSI system designs are limited by simultaneous worst case conditions and parameters. These conditions and parameters include worst case cable length; worst case cable attenuation; worst case impedance near the destination device; worst case input threshold variation at the destination; worst case terminator negation current imbalance; worst case driver terminator cancellation current imbalance; and worst case crosstalk.
A hitherto unsolved need has therefore remained for a practical method to reduce the deleterious effects of these causes and design compromises, leading to corresponding improvements in signal speed and quality, and increases in system practical bus lengths.
One object of the present invention is to provide a method for improving signaling margin of a data bus by employing a system perspective instead of a device-by-device or component-by-component perspective.
Another object of the present invention is to provide intelligent compensation to interconnected resources on a bus by iterative error rate margining adjustment of one or plural predetermined bus drive parameters.
Another object is to provide a signaling method for improving performance by enabling each sender/receiver pair on a data bus to transfer data across the bus at a fastest reliable data rate.
One more object of the present invention is to improve data transfer speed and reliability across a terminated low voltage differential Small Computing System Interface (LVD SCSI) bus.
In accordance with one aspect of the present invention, a method for margining error rate of a multi-drop data bus, such as a LVD SCSI bus includes the steps of:
determining a lowest acceptable level of a predetermined parameter, such as sending drive current, at a first, highest nominal data transmission rate across the data bus,
determining a highest acceptable level of the predetermined parameter at said transmission rate across the data bus,
determining whether a difference between determined lowest acceptable level and determined highest acceptable level is greater than a predetermined minimum error margin, and if so,
setting the predetermined parameter to a nominal level lying between the determined lowest acceptable level and the highest acceptable level at said first data transmission rate, and if not,
repeating the steps of lowest and highest acceptable levels at progressively reduced data transmission rate until the difference is determined to be greater than the predetermined minimum margin, and setting the predetermined parameter to a nominal level lying between the determined lowest acceptable level and the highest acceptable level at the reduced transmission rate.
In another aspect of the present invention, a method optimizes data transfer rate across a data bus to which a plurality of devices are attached. Each device includes a sending element and a receiving element. The bus supports a high speed synchronous transfer mode and a lower speed a synchronous transfer node. The bus receives termination bias current from at least one, and frequently several bus terminator(s). The sending device includes a controlled current mode driver, a controlled bias cancellation circuit, or other bus driving circuit with variable drive parameters, and a programmed digital processor for controlling the bus drive parameters. At the sending device the optimization method includes steps of:
setting a first predetermined bus drive operating parameter (such as one of drive current; termination bias cancellation current; optimization of a signal current amplitude, transient slew rate or common mode voltage; application of intersymbol intereference compensation techniques or strengths) of the current mode driver to a value within a first range of values, and
sending a test pattern including the first predetermined bus drive operating parameter at the value at a first transfer rate within a range of transfer rates. The steps of setting and sending are repeated such that the test pattern may include a plurality of parameters having a plurality of value settings, and the transfer rate may also be varied.
At a receiving device connected to the bus, the method includes steps of:
detecting test pattern errors at each setting within the first range of values and at each transfer rate,
determining an acceptable least errors combination of settings of the first setting range and highest transfer rate, and
otherwise signaling the sending device to reduce synchronous transmission speed to a lower transfer rate and then repeat the steps of setting and sending the test pattern.
This iterative tuning process is carried out between the sending and the receiving devices on the bus until an acceptable least errors combination of settings of the first and second ranges is determined for each device.
The sending method may include setting second or more predetermined parameters to a plurality of values within a second or further range, and sending the test pattern including both the first parameter and the second or more parameters within the test pattern.
In a related aspect of the present invention a sending device connected to a terminated bus, such as a terminated LVD SCSI bus, optimizes parameters of its data driver and its bias cancellation circuit in response to test patterns sent over the bus and received and checked by another device connected to the bus.
These and other objects, advantages, aspects, and features of the present invention will be more fully appreciated and understood upon consideration of the following detailed description of preferred embodiments presented in conjunction with the accompanying drawings.